var nums = [10, 5, 11, 100, 55]

// var newNums = []
// for (var i = 0; i < nums.length; i++) {
//   var num = nums[i]
//   if (num % 2 === 0) {
//     newNums.push(num)
//   }
// }

// console.log(newNums);


// 函数和方法的区别..
// 函数 funciton:独立的function,那么称为是一个函数
// 方法 method:当我们的一个函数属于某一个对象时,我们称这个函数是这个对象的方法

// 1.filter 过滤
var newNums = nums.filter(function (item, index, arr) {

  return item % 2 === 0
})

console.log(newNums);

// [10, 5, 11, 100, 55]
// 2.map:映射
var newNums2 = nums.map(function (item) {
  return item * 10
})

console.log(newNums2);

// 3.forEach:迭代  (没有返回值)
nums.forEach(function (item) {
  console.log(item);
})

console.log('------------------------');

// 4.find/findIndex
var item = nums.find(function (item) {
  return item === 11
})
console.log(item);


var friends = [{
  name: 'why',
  age: 18
}, {
  name: 'kobe',
  age: 40
}, {
  name: 'james',
  age: 35
}, {
  name: 'curry',
  age: 30
}]

var findFriend = friends.find(function (item) {
  return item.name === 'james'
})

console.log(findFriend);

var firendIndex = friends.findIndex(function (item) {
  return item.name === 'james'
})

console.log(firendIndex);


console.log('------------------------');
// reduce:累加 
// nums.reduce
// [10, 5, 11, 100, 55]
// preValue:0 item:10
// preValue:10 item:5
// preValue:15 item:11
var total = nums.reduce(function (preValue, item) {
  return preValue + item
}, 0)

console.log(total);